package com.xky.example_student.utils;

import org.springframework.util.DigestUtils;
import java.nio.charset.StandardCharsets;

/**
 * 密码加密工具类
 */
public class PasswordEncoder {
    
    /**
     * 对密码进行MD5加密
     * @param password 原始密码
     * @return 加密后的密码
     */
    public static String encode(String password) {
        if (password == null) {
            return null;
        }
        return DigestUtils.md5DigestAsHex(password.getBytes(StandardCharsets.UTF_8));
    }

    /**
     * 验证密码
     * @param rawPassword 原始密码
     * @param encodedPassword 加密后的密码
     * @return 是否匹配
     */
    public static boolean matches(String rawPassword, String encodedPassword) {
        if (rawPassword == null || encodedPassword == null) {
            return false;
        }
        String encodedRawPassword = encode(rawPassword);
        return encodedPassword.equals(encodedRawPassword);
    }
}
